package com.jsh.erp.datasource.mappers;

import com.jsh.erp.datasource.entities.UserCategory;
import com.jsh.erp.datasource.vo.TreeNode;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * Description
 *
 */
public interface UserCategoryMapperEx {
    List<UserCategory> selectByConditionUserCategory(
            @Param("name") String name,
            @Param("parentId") Integer parentId,
            @Param("offset") Integer offset,
            @Param("rows") Integer rows);

    Long countsByUserCategory(
            @Param("name") String name,
            @Param("parentId") Integer parentId);

    List<TreeNode> getNodeTree(@Param("currentId")String currentId);
    List<TreeNode> getNextNodeTree(Map<String, Object> parameterMap);

    int addUserCategory(UserCategory uc);

    int batchDeleteUserCategoryByIds(@Param("updateTime") Date updateTime, @Param("updater") String updater, @Param("ids") String ids[]);

    int editUserCategory(UserCategory uc);

    List<UserCategory> getUserCategoryBySerialNo(@Param("serialNo") String serialNo, @Param("id") String id);

    List<UserCategory> getUserCategoryListByCategoryIds(@Param("parentIds") String[] categoryIds);

    List<UserCategory> getListByParentId(@Param("parentId") String parentId);
}
